1-یک دنبالگرد crawler که صفحات وب را پیدا می کند تاداخل مجموعهصفحات وب آن موتورقرار گیرد،
2-یک شاخصگذار indexer که شاخص معکوس inverted index(نیز موسوم به شاخصindex)را کهساختمان اصلی داده های مورد استفاده ی آن موتور جست وجو است و صفحات وب دنبال گشته crawled را ارائه می کند ،
3-یک پاسخ دهنده کهپرس و جو های کاربر را با استفاده از شاخصها پاسخ می دهد .
موتورهای جستجو چگونه کار می کنند؟
هیچ تا به حال از خودتان پرسیده اید که وقتی با یک موتورجستجوی قوی مثل گوگل ( google) کار میکنیدو یا وارد کردن یک یا چند لغت عجیب و غریب ،گوگل کلی نتایج جالب ومرتبط ،تقدیمتان می کند، چه اتفاقی می افتد ؟
اگر تا به حال به دنبال پاسخ این پرسش نرفته اید یا پاسخ مناسبی برای آن پیدا نکرده اید،پیشنهاد می کنیم تا آخر این مقاله همراه ما باشید .اگرچه الگوریتم دقیق و چگونگی کار وگوگل یا خیلی از موتورهای جستجو ،کاملا معلوم نیست.
اماکلیاتی در کار بسیاری از موتورهای جستجو مشترک ومشابه است که دانستن آنها خالی از لطف نیست.
پیش پردازش دادها
یکی از راههایی که موتورهای جستجو ، برای کاهش زمان جستجو به کار می برند ، پیش پرداش محتوای وب سایت هاست .به این ترتیب که وقتی کاربر درخواست یک پرس و جو را می دهد .به جای این که این پرس وجو به میلیون ها وب سایت فرستاده شود، با داده از پیش پردازش شده در یک سایت مقایسه می شود و مطابقت صورت می پذیرد. پیش پردازش به کمک برنامه نرم افزاری به نام crawlerانجام می گیرد.
Crawler ، به وسیله نگهدارنده ها و به روزکنندگان بانک های اطلاعاتی فرستاده می شود تا فهرست صفحات وب را جمع آوری کند. یک برنامه ویژه رایانه ای، صفحات بازیافتی را پیمایش می کند تا کلمات را استخراج نماید و بعد این کلمات همراه با لینکی به صفحه مربوط ،در فایل شاخص (index)ذخیره می شود. پرس و جو های کاربران با همین فایل شاخص مقایسه و مطابقت داده می شود ونه با دیگر وب سایت ها.
الویت بندی نتایج
Url یا لینیک هایی که به عنوان نتایج جستجو تولید می شوند معمولا خیلی زیاد هستند ،اما همه این نتایج به درد بخور نیستند و حتی ممکن است عواملی مثل ابهام زبان باعث شود نتایج مناسبی به کاربر داده نشود .برای فراهم کردن دسترسی سریع و در عین حال صفحات مناسب و این که صفحات با موضوعیت بیشتر در الویت بالاتری قرار بگیرتد ،الگوریتم های جستجو استراتژی های رتبه بندی مختلفی رابه کار می برند .
یکی از این روش ها که بسیار معمول است ، tfidf(term frequency inverse document trequncy) است. در این روش چگونگی توزیع کلمات و تکرار آنها بررسی می شود و برای کلمات، وزن عددی تولیدمی شود . این وزن به معنی درجه اهمیت و اعتبار آنها در اسناد مختلف است.به این کار وزن دهی واژه(term weighting)گفته می شود.وزن یک واژه به 2 عامل بستگی دارد: یکی دفعات تکرار واژه که هر چه بیشتر با شد اهمیت واژه بیشتر است و دیگری تواتر اسناد که به معنی تعداد اسنادی است که شامل آن واژه است و هر چه این مقدار بیشتر باشد ،اهمیت واژه در تمایز اسناد کمتر خواهد بود .به این ترتیب کلماتی که تکرار بیشتری دارند مثل or , to,withو...نسبت به کلماتی که از نظرمعنایی مناسب ترند و از طرف دیگر در متنهای کمتری ظاهر می شوند ،وزن کمتری خواهند داشت ؛البته عوامل دیگری می توانند بر وزن (اهمیت)یک واژه موثر باشند .محل وقوع واژه نمادهای خاص مثل (font) و برچسب(tag) مربوط به واژه از آن جمله اند. معمولا کلمه ای که در عنوان یک سند باشد مهمتر از واژه های خود متن است. همچنین واژ ه های خود متن است.همچنین واژه های نوشته شده با قلم خاص مهمتر از کلماتی است که بدون این ویژگی ها باشند.
علاوه بر وزن دهی واژه ها ،صفحات وب با استراتژی های دیگری هم وزن می شود؛مثلا در روش تحلیل لینک(Link analysis) ماهیت هر صفحه با توجه به ارتباط آن با دیگر صفحات در نظر گرفته می شود.به این ترتیب وزن دهی یک صفحه با توجه به تعداد صفحاتی که به آن صفحه اشاره می کنند یا بعکس،تعداد صفحاتی که آن صفحه به آنها اشاره می کند،صورت میپذیرد.گوگل از این روش برای بالا بردن نتایج جستجو استفاده می کند.
موقعیت و مسافت
اصطلاحCaching درباره موتورهای جسجو هم کاربرد دارد. به این ترتیب که پرس وجو هایی که بتازگی از سوی کاربران وارد شده ،در جایی نگهداری یا به اصطلاح Cache می شود و پرس و جوی کاربر پس از ارسال به موتور جستجوبه کار می رود. در واقع وقتی موتور جستجو املای صحیح کلمه را به شما اعلام می کند (Did you mean) از این تکنیک بهره می برد. استفاده از مدل تحویل توزیع شده (distributed delivery) راه دیگری برای سرعت دادن پاسخ گویی به درخواست های کاربران است .در این مدل کپی هایی از شاخص ها ومطالب مربوط تولید می شود وبه مکان های جغرافیایی متعددی انتقال می یابد .
مشکلات
همان طور که گفتیم Crawler ها برای پیش پردازش و بازیابی صفحات به کار می روند.بعضی Crawler ها به روش کورکورانه به بازیابی صفحات می پردازند.روش کورکورانه به این معنی است که به شهرت و اهمیت یا به عبارتی قابل اعتماد بودن مطالب وتولید کنندگان آنها توجهی ندارند.البته این روش موجب شده سوء استفاده هایی در شاخص دهی و استفاده از موتورهای جستجو صورت گیرد.یکی از این کارها بهindex_spamming معروف است .بعضی سایت ها برای اینکه در بیشتر مواقع در نتایج جستجو قرار بگیرند و تعداد مراجعان بیشتری داشته باشند،هزاران بار لغات خاصی را در محتوای سایت خود قرار میدهند تا از نظر موتورهای جستجو اولویت و امتیاز بیشتری را به خود اختصاص دهند.
pagejacking یکی دیگر از این حیله هاست .این حیله از یکی از ویژگی های نرم افزارهای وب سرورها،سوء استفاده می کند .وب سرورها برای اینکه تعداد درخواستهای یکیان بیشتری را در یک زمان پاسخ دهند ،(مثلا چند کاربر همزمان بخواهند به یک صفحه دسترسی پیدا کنند )مطالب هر صفحه را روی چند رایانه(با نشانی های مختلف که از دید کاربر مخفی است)قرار می دهند و درخواست کاربران را به این رایانه ها هدایت می کنند .بعضی سایت ها از این ویژگی نرم افزار استفاده و محتوای صفحات یک سایت را کپی می کنند و در سایت خود قرار می دهند . این صفحات هم به وسیله موتورهای جستجو ،شاخص دهی می شود و در خواست بعضی کاربران به جای صفحه اصلی به این صفحات تقلبی ارجاع داده می شوند .به این ترتیب یک موتور جستجوی خوب علاوه بر جستجو و سرویس دهی خوب به کاربر باید توانایی تشخیص جمله های اینترنتی را هم داشته باشد تا بتواند بهترین و صحیح ترین نتایج ممکن را در اختیار کاربران قرار دهد.
شاخص گذاری:
همه شاخص ها بر اساس یک مفهوم اصلی واحد عمل می کنند: کلیدها و آدرس فیلدها.
انواع شاخص هایی که بررسی می کنیم شاخص ساده نامیده می شوند زیرا با استفاده از آرایه های ساده ای از ساختمان ها نشان داده می شوند ،که حاوی کلیدها و آدرس فیلدها هستند.
چون شاخص ها به طور غیر مستقیم عمل می کنند ، بدوندستکاری محتویات فایل ،به فایل نظم و ترتیب می بخشند.
کاتالوگ کارتی در واقع مجموعه ای از سه شاخص است که هر کدام از یک فیلد کلید متفاوت استفاده می کنند و همه انها از یک شماره کاتالوگ یکسان به عنوان فیلد آدرس بهره می گیرند.
بنابراین کاربرد دیگر شاخص بندی این است که می توان از طریق مسیرهای گوناگونی به فایل دست یافت.
در جستجوی دودویی لازم است امکان پرش به وسط فایل را داشته باشیم.
راه دیگر برای مرتب سازی ، ایجاد شاخص برای فایل است.
ساختار شیء شاخص بسیار ساده است.
این ساختار لیستی است که هر عنصر آن دو فیلد دارد:
یک فیلد کلید و یک فیلد برای آفست بایت.
عملیاتی که برای یافتن داده های مورد نظر ،از طریق شاخص لازمند عبارتند از :
۱) ایجاد فایل داده ها و شاخص خالی اولیه
۲) باز کزدن فایل شاخص در حافظه ،قبل از به کارگیری آن
۳) نوشتن فایل شاخص بر روی دیسک ،پس از به کارگیری آن
۴) افزودن رکوردهایی به فایل و داده ها
۵) حذف رکوردها از فایل داده ها
۶) بهنگام کردن رکوردها در فایل داده ها
۷) بهنگام کردن شاخص برای انعکاس تغییرات به عمل آمده در فایل داده ها.
مزیت بزرگی که روش شیء گرا دارد آن است که برای اجرای این عملیات به هرچه نیاز داشته باشیم می توانیم در متدهای کلاس خود بیابیم.
در ایجاد فایل ها باید دو فایل ایجاد شوند :
۱) فایل داده ها برای نگهداری اشیای داده ای
۲) فایل شاخص برای نگهداری شاخص کلید اولیه
بهنگام سازی رکوردها به دو صورت انجام می شود :
۱) بهنگام سازی ،تعداد فیلد و کلید را تغییر می دهد.
۲) بهنگام سازی ،در فیلد و کلید تأثیر نمی گذارد.
آشکارترین بهینه سازی ،استفاده از جستجوی دودویی در متد find است که توسط :
insert , searchوremoveبه کار گرفته می شود.
منبع دیگر بهینه سازی ،چنانچه رکورد شاخص تغییر نکرده باشد ، نوشتن درباره
تبادل
لینک هوشمند
برای تبادل
لینک ابتدا ما
را با عنوان
تمامي امور
دانشجويان و آدرس
daneshgo.LXB.ir لینک
نمایید سپس
مشخصات لینک
خود را در زیر
نوشته . در صورت
وجود لینک ما در
سایت شما
لینکتان به طور
خودکار در سایت
ما قرار میگیرد.